package com.lanou.beautifulwardrobe.view;

/**
 * Created by dllo on 15/11/9.
 */
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.app.Activity;
import android.text.TextUtils;
import android.widget.Toast;

import com.lanou.beautifulwardrobe.contants.ToastCommom;

public class RegularUtil {
    //昵称格式
    public static boolean checknickName(Activity context, String name) {

        if (TextUtils.isEmpty(name) || name.length() < 3 || name.length() > 8||!nickNameFormat(name)) {
            Toast.makeText(context, "昵称不符合规范，3-8个中英文字符、数字", Toast.LENGTH_SHORT)
                    .show();
            return false;
        }
        return true;

    }
    //姓名格式
    public static boolean checkName(Activity context, String name) {

        if (TextUtils.isEmpty(name) || name.length() < 3 || name.length() > 8||!nameFormat(name)) {
            Toast.makeText(context, "姓名不符合规范，3-8个中英文字符", Toast.LENGTH_SHORT)
                    .show();
            return false;
        }
        return true;

    }
    //电话格式
    public static boolean checkPhone(Activity context, String name) {

        if (TextUtils.isEmpty(name) || !phoneFormat(name)) {
            Toast.makeText(context, "电话号不符合规范，只能有数字", Toast.LENGTH_SHORT)
                    .show();
            return false;
        }
        return true;

    }
    //密码格式
    public static boolean checkPassword(Activity context,String password) {
        if (!passwordFormat(password)) {
            ToastCommom.makeText(context, "密码的格式是6-15位英文字符/数字", Toast.LENGTH_SHORT)
                    .show();
            return false;
        }
        return true;
    }
    //密码是否一致
    public static boolean checkPassward(Activity context,String password,String confirm)
    {
        if (!checkPassword(context, password)) {

            return false;
        }
        if (!password.equals(confirm)) {
            ToastCommom.makeText(context, "密码不一致", Toast.LENGTH_SHORT)
                    .show();
            return false;
        }
        return true;
    }
    //邮箱格式
    public static boolean checkEmail(Activity context, String email) {
        if (!emailFormat(email) || email.length() > 31) {
            Toast.makeText(context, "邮箱格式不正确", Toast.LENGTH_SHORT)
                    .show();
            return false;
        }
        return true;
    }
    // 密码邮箱  一起
    public static boolean check(Activity context, String email, String password) {
        if (!emailFormat(email) || email.length() > 31) {
            Toast.makeText(context, "邮箱格式不正确", Toast.LENGTH_SHORT)
                    .show();
            return false;
        }
        if (!checkPassword(context, password)) {
            return false;
        }
        return true;
    }
		/*
		 * java.util.regex是一个用正则表达式所定制的模式来对字符串进行匹配工作的类库包
		 * 他包含两个类:Pattern 和 Matcher
		 * Pattern 一个Pattern 是一个正则表达式经编译后的表现模式
		 * Matcher 一个Matcher对象是一个状态机器,他依据Pattern的对象作为匹配模式对字符串展开匹配检查
		 * 首先一个Pattern实例定制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher
		 * 实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作*/
    //  “\\”匹配“\” “\(”则匹配“(”  {n,m} 匹配长度   () 域段   [] 包含,默认是一个字符长度
    //密码的格式

    public static boolean passwordFormat(String password){
        Pattern pattern = Pattern.compile("^[\\@A-Za-z0-9\\!\\#\\$\\%\\^\\&\\*\\.\\~]{6,15}$");
        Matcher mc =pattern.matcher(password);
        return mc.matches();
    }
    //邮箱的格式"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\.\\w+([-.]\\w+)*$"  ???
    private static boolean emailFormat(String email) {
        Pattern pattern = Pattern.compile("^[A-Za-z\\d]+(\\.[A-Za-z\\d]+)*@([\\dA-Za-z](-[\\dA-Za-z])?)+(\\.{1,2}[A-Za-z]+)+$");
        Matcher mc = pattern.matcher(email);
        return mc.matches();
    }

    /*
     * 以字母开头,长度在3-16之间,只能包含字符/数组和下划线*/
    //昵称的格式
    public static boolean nickNameFormat(String name) {
        Pattern pattern = Pattern.compile("^[\u4e00-\u9fa5A-Za-z0-9_]{3,16}$");
        Matcher mcMatcher  = pattern.matcher(name);
        return mcMatcher.matches();
    }
    /*
     * 以字母开头,长度在3-16之间,只能包含字符*/
    //姓名的格式
    public static boolean nameFormat(String name) {
        Pattern pattern = Pattern.compile("^[\u4e00-\u9fa5\uf900-\ufa3dA-Za-z]{3,16}$");
        Matcher mcMatcher  = pattern.matcher(name);
        return mcMatcher.matches();
    }
    /*
     * 以1开头,长度在3-16之间,只能包含数字*/
    //手机号的格式
    public static boolean phoneFormat(String phone) {
        Pattern pattern = Pattern.compile("^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$");
        Matcher mcMatcher  = pattern.matcher(phone);
        return mcMatcher.matches();
    }

}



